/*----------------------------------------------------------------------------
 * osObjects.h: CMSIS-RTOS global object definitions for an application
 *----------------------------------------------------------------------------
 *
 * This header file defines global RTOS objects used throughout a project
 *
 * #define osObjectsPublic indicates that objects are defined; without that
 * definition the objects are defined as external symbols.
 *
 *--------------------------------------------------------------------------*/


#ifndef __osObjects
#define __osObjects

#ifdef osObjectsPublic
#define OBJ_EXT  
#else
#define OBJ_EXT extern 
#endif

#include "includes.h"               // CMSIS RTOS header file


// global 'thread' functions ---------------------------------------------------

OBJ_EXT  OS_TCB         AppTaskBlinkyTCB;
OBJ_EXT  CPU_STK        AppTaskBlinkyStk[APP_CFG_TASK_START_STK_SIZE];
OBJ_EXT  void           AppTaskBlinky             (void  *p_arg);

#define  APP_CFG_TASK_LEDCTR_STK_SIZE            128
#define  APP_CFG_TASK_LEDCTR_PRIO                10
OBJ_EXT  OS_TCB         LedCtrTaskTCB;
OBJ_EXT  CPU_STK        LedCtrTaskStk[APP_CFG_TASK_START_STK_SIZE];
OBJ_EXT  void           LedCtrTask               (void  *p_arg);

#define  APP_CFG_TASK_MODBUS_STK_SIZE            128
#define  APP_CFG_TASK_MODBUS_PRIO                10
OBJ_EXT  OS_TCB         ModbusTaskTCB;
OBJ_EXT  CPU_STK        ModbusTaskStk[APP_CFG_TASK_START_STK_SIZE];
OBJ_EXT  void           Modbus                   (void  *p_arg);

#endif  // __osObjects
